画面をスクロールする
JavaScriptを使用すると、画面を自動スクロールさせることができます。このテクニックを上手に利用すると、映画のエンディングロールのようなホームページを作成することも可能です。今回は、画面を自動スクロールさせる方法を紹介してみましょう。

→ まずはサンプルを確認してください
 
画面をスクロールする


→ 自動スクロールの関数を自作する
 
画面をスクロールさせるには、自作のJavaScript関数を作成します。関数内では、画面をスクロールさせるメソッド「window.scroll(x,y)」を利用して、画面をスクロールさせていきます。ただし「window.scroll(x,y)」を一回だけ実行しただけでは、指定した座標(x,y)まで瞬時にスクロールしてしまうため、スムーズなスクロールが実現できません。
<SCRIPT language="JavaScript">
<!--
y=0;
function ending(){
  window.scroll(0,y);
}
// -->
</SCRIPT>
  • ここでは、自作する関数の名前を「ending()」としています。
  • ここではスクロールさせる量をとりあえず、x方向に0、y方向に変数「y」と指定しておきます。


→ setTimeoutで関数を繰り返す
 
ゆっくりとスクロールさせていくには、(x,y)の値を少しずつ変化させながら繰り返し「window.scroll(x,y)」を実行する必要があります。この繰り返しは、setTimeoutを利用すると便利です。具体的には、「setTimeout(関数名,時間)」と記述して、関数を無限に繰り返します。また、一番下までスクロールしたら最初に戻る、という仕組みをif文で作成しておく必要があります。
<SCRIPT language="JavaScript">
<!--
y=0;
function ending(){
  window.scroll(0,y);
  y=y+2;
  if (y==2000)y=0;
  setTimeout("ending()",50);
}
//-->
</SCRIPT>
  • 自作関数「ending()」の繰り返しは、「setTimeout("ending()",100)」により実現されています。上記の例では50ミリ秒(0.05秒)間隔で自作関数「ending()」が繰り返し実行されることになります。
  • 次回、関数「ending()」が呼び出された際に、前回より少しだけ下にスクロールさせるため、「y=y+2」により変数「y」の値を2ずつ増加させます。
  • 最後までスクロールした時の処理をif文により記述しておきます。上記の例では、変数「y」の値が2000になったら値を0に戻す(つまり画面の一番上まで戻る)という処理をif文で行っています。


→ onloadイベントで自作関数を呼び出す
 
あとは、BODYタグにonloadイベントを追加し、自作関数を呼び出せば作業完了です。ページのコンテンツは普通にHTMLで作成するだけでOK。ただし、「コンテンツ量が短すぎて最後までスクロールしない」「またはコンテンツ量が多すぎて途中までしかスクロールしない」といった事態を招くことがないように、自動スクロールさせる量、またはコンテンツ量を調整するようにしてください。
<BODY bgcolor="#000000" text="#FFFFFF" onload="ending()">
  ・
  ・
  ・
(普通にHTMLでページ内容を作成する)
  ・
  ・
  ・
</BODY>

G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMIT1~] COiq COsI